/*
 * @Description:
 * @author:
 * @since: yyyy-MM-dd
 * @page: xxxx.vue
 */
import { fileURLToPath, URL } from 'node:url'
import AutoImport from 'unplugin-auto-import/vite' //按需自动加载API插件
import Components from 'unplugin-vue-components/vite' //自动导入组件
// import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(), //用于将 Vue.js 的功能添加到项目中
    AutoImport({
      imports: ['vue', 'vue-router'],
      // 设置为在'src/'目录下生成解决ts报错，默认是当前目录('./'，即根目录)
      dts: 'src/auto-import.d.ts',
      // 自动生成'eslintrc-auto-import.json'文件，在'.eslintrc.cjs'的'extends'中引入解决报错
      // 'vue-global-api'这个插件仅仅解决vue3 hook报错
      eslintrc: {
        enabled: true,
      },
    }),
    Components({
      dirs: ['src/components'], // 配置需要默认导入的自定义组件文件夹，该文件夹下的所有组件都会自动 import
      resolvers: [
        // ElementPlusResolver(), // 自动注册图标组件
        // IconsResolver({
        //   enabledCollections: ['ep'], //@iconify-json/ep 是 Element Plus 的图标库
        // }),
      ],
    }),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)), //表示从当前模块URL到src目录的相对路径
    },
  },
  server: {
    // 监听所有地址
    host: '0.0.0.0',
    // 服务启动时是否自动打开浏览器
    open: true,
    // 允许跨域
    cors: true,
    // 自定义代理规则
  },
  css: {
    preprocessorOptions: {
      javascriptEnabled: true,
      scss: {
        additionalData: `@import "./src/styles/mixin.scss";`, // 此处全局的scss文件，可引多个
      },
    },
  },
  optimizeDeps: {
    include: ['@smallwei/avue'],
    exclude: [],
  },
})
